/*
 * $Id: client.prg 2011-12-28 17:26 riztan $
 */

/*
 * Harbour Project source code:
 *    demonstration/test code for alternative RDD IO API, RPC and
 *    asynchronous data streams in NETIO
 *
 * Copyright 2010 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
 * www - http://harbour-project.org
 *
 */
/** \file client.prg
 *  \brief Aplicacion cliente.
 *   Realiza conexion a un Servidor NetIO/Tpuy y realiza algunas acciones con la base de datos.
 *  \date 2011
 *  \author Riztan Gutierrez. <riztan@gmail.com>
 */

/* net:127.0.0.1:2941:topsecret:data/_tst_ */

#include "netio.ch"
#include "common.ch"


#define DBSERVER  "localhost"
#define DBPORT    2941
#define DBPASSWD  "topsecret"
#define DBDIR     "data"
#define DBFILE    "_tst_"

/** \brief Procedimiento Principal. 
 * /details Esta aplicación puede ser de tipo GUI.
 * Para el caso de TPuy, la aplicacion puede recibir scripts desde el servidor y
 * ejecutarlos. De esa forma, hay posibilidad de dejar el desarrollo de la vista 
 * en el servidor.
 *
 * \var roQry Representa el objeto remoto <i>oPublic</i>.
 */
procedure main()
   //local nStream1, pConnSock
   local roQry  
   local aAux
local i

   ?
   ? "NETIO_CONNECT():", netio_connect( DBSERVER, DBPORT, , DBPASSWD )
   ?

   // Asi obtenemos el puntero de la conexion.
   //pConnSock:= netio_GetConnection( DBSERVER, DBPORT,,DBPASSWD )
   //? pConnSock

   net:QOUT( "Fecha del Cliente ", Date() )
   
for i:=1 to 5

//   rDbServer:New(DbServer)

   ? "solicitando ~DbServer:cHost    => ", ~DbServer:cHost
/*
   ? 'solicitando ValType( ~DbServer:Query("select * from admconfig.dpbotbar") )  =>  ',;
                  ValType( ~DbServer:Query("select version()"))
*/
//                  ? ValToPrg( ~~roQry:FillArray() )

   roQry:= ~DbServer:Query("select * from admconfig.dpmenu")
   
   ? "Handle para el Objeto: ",roQry,CRLF, ;
     "ValType() => ", ValType(roQry)

  ? "--->", ValToPrg( ~~roQry:FillArray() )
?
   
   aAux := ~DbServer:aQueries
   
//   ? "ValType de aQueries => ", ValType( aAux )
//   ? ValToPrg(aAux)
//   ? ValToPrg(aAux)
//   AEVAL( aAux, {|a| QOUT( ValToPrg( a ) ) } )
   //? ( ~~roQry:FillCSV() )
   
   //netio_funcexec("mensaje",pConnSock,nStream1,"cHost")

   /*  OpenItemStream abre un canal de flujo de datos  */
//   nStream1 := NETIO_OPENITEMSTREAM( "open_Dolphin" )
//   ? "NETIO_OPENDATASTREAM:", nStream1

   //Esperamos 3 segundos...
//   hb_idleSleep( 3 )
   
   /* Mostramos el Flujo de Datos Recibido */
//   ? "NETIO_GETDATA 1:", hb_valToExp( NETIO_GETDATA( nStream1 ) )

~HGet( LoadMenu("mainmenu") )
hb_deserialize( net:LoadMenu("mainmenu") )

   hb_idleSleep( 2 )
   
   //net:DbInit()

//   ? "NETIO_CLOSESTREAM 1:", NETIO_CLOSESTREAM( nStream1 )

next

return



//eof
